[INFO] cloning repository https://github.com/BaiYouShiWo/inv_pendulum
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BaiYouShiWo/inv_pendulum" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBaiYouShiWo%2Finv_pendulum", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBaiYouShiWo%2Finv_pendulum'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 845d0590b4b37e80d76083742b2cc22e67d461b5
[INFO] checking BaiYouShiWo/inv_pendulum against master#c290daa1e5274a52e54a0f49e31bd70192abc606 for pr-133502-23
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBaiYouShiWo%2Finv_pendulum" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/BaiYouShiWo/inv_pendulum
[INFO] finished tweaking git repo https://github.com/BaiYouShiWo/inv_pendulum
[INFO] tweaked toml for git repo https://github.com/BaiYouShiWo/inv_pendulum written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/BaiYouShiWo/inv_pendulum on toolchain c290daa1e5274a52e54a0f49e31bd70192abc606
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/BaiYouShiWo/inv_pendulum already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pixels v0.13.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6b2ebeeeb80ee4e6d36c37f2bb0f228b9beb936060b79472869cb266c25346ad
[INFO] running `Command { std: "docker" "start" "6b2ebeeeb80ee4e6d36c37f2bb0f228b9beb936060b79472869cb266c25346ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6b2ebeeeb80ee4e6d36c37f2bb0f228b9beb936060b79472869cb266c25346ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6b2ebeeeb80ee4e6d36c37f2bb0f228b9beb936060b79472869cb266c25346ad" "/opt/rustwide/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6b2ebeeeb80ee4e6d36c37f2bb0f228b9beb936060b79472869cb266c25346ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6b2ebeeeb80ee4e6d36c37f2bb0f228b9beb936060b79472869cb266c25346ad" "/opt/rustwide/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling proc-macro2 v1.0.105
[INFO] [stderr]    Compiling quote v1.0.43
[INFO] [stderr]    Compiling zerocopy v0.8.33
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking libloading v0.7.4
[INFO] [stderr]    Compiling khronos-egl v4.1.0
[INFO] [stderr]    Compiling ash v0.37.3+1.3.251
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking spirv v0.2.0+1.5.4
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.2
[INFO] [stderr]     Checking gpu-alloc-types v0.2.0
[INFO] [stderr]     Checking hexf-parse v0.2.1
[INFO] [stderr]     Checking unicode-xid v0.2.6
[INFO] [stderr]     Checking wgpu-types v0.16.1
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.1
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]     Checking renderdoc-sys v1.1.0
[INFO] [stderr]     Checking glow v0.12.3
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking tiny-skia-path v0.8.4
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]     Checking gpu-alloc v0.5.4
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking pollster v0.3.0
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]     Checking flate2 v1.1.8
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]     Checking tiny-skia v0.8.4
[INFO] [stderr]     Checking ultraviolet v0.9.2
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]    Compiling winit v0.28.7
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking gpu-descriptor v0.2.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking naga v0.12.3
[INFO] [stderr]     Checking calloop v0.10.6
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking wgpu-hal v0.16.2
[INFO] [stderr]     Checking wgpu-core v0.16.1
[INFO] [stderr]     Checking wgpu v0.16.3
[INFO] [stderr]     Checking pixels v0.13.0
[INFO] [stderr]     Checking sctk-adwaita v0.5.4
[INFO] [stderr]     Checking physical_engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `rand::rand_core::le`
[INFO] [stdout]  --> src/controller/dual_pid.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::rand_core::le;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ball` and `Balls`
[INFO] [stdout]  --> src/collision/collision_object/mod.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use ball::{Ball, Balls};
[INFO] [stdout]   |                ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Boundaries` and `CollisionLine`
[INFO] [stdout]  --> src/collision/collision_object/mod.rs:4:20
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use boundary::{Boundaries, CollisionLine};
[INFO] [stdout]   |                    ^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `change_velocity_direction`, `change_velocity_magnitude`, `check_ball_ball_collision`, and `check_collision`
[INFO] [stdout]  --> src/collision/mod.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use collision::{check_collision, check_ball_ball_collision, change_velocity_direction, change_velocity_magnitude};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::rand_core::le`
[INFO] [stdout]  --> src/controller/dual_pid.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::rand_core::le;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ball` and `Balls`
[INFO] [stdout]  --> src/collision/collision_object/mod.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use ball::{Ball, Balls};
[INFO] [stdout]   |                ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Boundaries` and `CollisionLine`
[INFO] [stdout]  --> src/collision/collision_object/mod.rs:4:20
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use boundary::{Boundaries, CollisionLine};
[INFO] [stdout]   |                    ^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `change_velocity_direction`, `change_velocity_magnitude`, `check_ball_ball_collision`, and `check_collision`
[INFO] [stdout]  --> src/collision/mod.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use collision::{check_collision, check_ball_ball_collision, change_velocity_direction, change_velocity_magnitude};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/inverted_pendulum.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let x = state.cart_position;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_time`
[INFO] [stdout]   --> src/simulation.rs:20:30
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn update(&mut self, current_time: f32, control_force: f32) {
[INFO] [stdout]    |                              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position_force`
[INFO] [stdout]   --> src/controller/dual_pid.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let position_force = self.position_pid.update(position_error);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position_force`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value captured by `fps` is never read
[INFO] [stdout]   --> src/main.rs:78:21
[INFO] [stdout]    |
[INFO] [stdout] 78 |                     fps = console_counter as f32 / 2.0;
[INFO] [stdout]    |                     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: did you mean to capture by reference instead?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_failed` is never used
[INFO] [stdout]   --> src/physical_engine.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl PendulumPhysicsEngine {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn is_failed(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `accumulator`, `fixed_dt`, and `last_time` are never read
[INFO] [stdout]  --> src/simulation.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct RealTimeSimulation {
[INFO] [stdout]   |            ------------------ fields in this struct
[INFO] [stdout] 4 |     pub physics: PendulumPhysicsEngine,
[INFO] [stdout] 5 |     pub accumulator: f32,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 6 |     pub fixed_dt: f32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 7 |     pub last_time: f32,
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/controller/pid_controller.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl PIDController {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/controller/dual_pid.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl DualLoopPID {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ball` is never constructed
[INFO] [stdout]  --> src/collision/collision_object/ball.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Ball {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_position` is never used
[INFO] [stdout]  --> src/collision/collision_object/ball.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl Ball {
[INFO] [stdout]   | --------- method in this implementation
[INFO] [stdout] 8 |     pub fn update_position(&mut self, dt: f32) {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Balls` is never constructed
[INFO] [stdout]   --> src/collision/collision_object/ball.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Balls {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CollisionLine` is never constructed
[INFO] [stdout]  --> src/collision/collision_object/boundary.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct CollisionLine {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Boundaries` is never constructed
[INFO] [stdout]  --> src/collision/collision_object/boundary.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Boundaries {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_collision` is never used
[INFO] [stdout]    --> src/collision/collision.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn check_collision(line: &ScreenLine, norm: &Vec2d, center: &ScreenPoint, radius: f32) -> bool{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_ball_ball_collision` is never used
[INFO] [stdout]    --> src/collision/collision.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn check_ball_ball_collision(center1: &ScreenPoint, center2: &ScreenPoint, radius1: f32, radius2: f32) -> bool{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `change_velocity_direction` is never used
[INFO] [stdout]    --> src/collision/collision.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub fn change_velocity_direction(normal: &Vec2d, velocity: Vec2d) -> Vec2d {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `change_velocity_magnitude` is never used
[INFO] [stdout]    --> src/collision/collision.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn change_velocity_magnitude(velocity_pre: Vec2d, acceleration: Vec2d, dt: f32) -> Vec2d{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/inverted_pendulum.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let x = state.cart_position;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_time`
[INFO] [stdout]   --> src/simulation.rs:20:30
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn update(&mut self, current_time: f32, control_force: f32) {
[INFO] [stdout]    |                              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position_force`
[INFO] [stdout]   --> src/controller/dual_pid.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let position_force = self.position_pid.update(position_error);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position_force`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value captured by `fps` is never read
[INFO] [stdout]   --> src/main.rs:78:21
[INFO] [stdout]    |
[INFO] [stdout] 78 |                     fps = console_counter as f32 / 2.0;
[INFO] [stdout]    |                     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: did you mean to capture by reference instead?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_failed` is never used
[INFO] [stdout]   --> src/physical_engine.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl PendulumPhysicsEngine {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn is_failed(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `accumulator`, `fixed_dt`, and `last_time` are never read
[INFO] [stdout]  --> src/simulation.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct RealTimeSimulation {
[INFO] [stdout]   |            ------------------ fields in this struct
[INFO] [stdout] 4 |     pub physics: PendulumPhysicsEngine,
[INFO] [stdout] 5 |     pub accumulator: f32,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 6 |     pub fixed_dt: f32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 7 |     pub last_time: f32,
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/controller/pid_controller.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl PIDController {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/controller/dual_pid.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl DualLoopPID {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ball` is never constructed
[INFO] [stdout]  --> src/collision/collision_object/ball.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Ball {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_position` is never used
[INFO] [stdout]  --> src/collision/collision_object/ball.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl Ball {
[INFO] [stdout]   | --------- method in this implementation
[INFO] [stdout] 8 |     pub fn update_position(&mut self, dt: f32) {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Balls` is never constructed
[INFO] [stdout]   --> src/collision/collision_object/ball.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Balls {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CollisionLine` is never constructed
[INFO] [stdout]  --> src/collision/collision_object/boundary.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct CollisionLine {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Boundaries` is never constructed
[INFO] [stdout]  --> src/collision/collision_object/boundary.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Boundaries {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_collision` is never used
[INFO] [stdout]    --> src/collision/collision.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn check_collision(line: &ScreenLine, norm: &Vec2d, center: &ScreenPoint, radius: f32) -> bool{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_ball_ball_collision` is never used
[INFO] [stdout]    --> src/collision/collision.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn check_ball_ball_collision(center1: &ScreenPoint, center2: &ScreenPoint, radius1: f32, radius2: f32) -> bool{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `change_velocity_direction` is never used
[INFO] [stdout]    --> src/collision/collision.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub fn change_velocity_direction(normal: &Vec2d, velocity: Vec2d) -> Vec2d {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `change_velocity_magnitude` is never used
[INFO] [stdout]    --> src/collision/collision.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn change_velocity_magnitude(velocity_pre: Vec2d, acceleration: Vec2d, dt: f32) -> Vec2d{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.30s
[INFO] running `Command { std: "docker" "inspect" "6b2ebeeeb80ee4e6d36c37f2bb0f228b9beb936060b79472869cb266c25346ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6b2ebeeeb80ee4e6d36c37f2bb0f228b9beb936060b79472869cb266c25346ad", kill_on_drop: false }`
[INFO] [stdout] 6b2ebeeeb80ee4e6d36c37f2bb0f228b9beb936060b79472869cb266c25346ad
